﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace QLNHK.GenKey
{
    public partial class frmThongTinDonVi : Form
    {
        private Guid _ID = Guid.Empty;
        public frmThongTinDonVi()
        {
            InitializeComponent();
        }
        public frmThongTinDonVi(Guid _IDDonVi)
        {
            InitializeComponent();
            _ID = _IDDonVi;
        }

        private void frmThongTinDonVi_Load(object sender, EventArgs e)
        {
            if (_ID != Guid.Empty)
            {
                ThongTinDonVi obj = ThongTinDonVi.Load(_ID);
                txtMaDonVi.Text = obj.MaDonVi;
                txtTenDonVi.Text = obj.TenDonVi;
                dtpNgayMua.DateTime = obj.NgayMua;
                txtSoLuongBanQuyen.Text = obj.SoLuongBanQuyenMua.ToString();
                txtTinhTrangThanhToan.Text = obj.TinhTrangThanhToan;
                txtGhiChu.Text = obj.GhiChu;

                grKey.Enabled = true;
                this.LoadGridKeyBanQuyen(_ID);
            }
            else
            { 
                
            }
        }

        private void LoadGridKeyBanQuyen(Guid _IDDonVi)
        {
            UGKeyBanQuyen.DataSource = MaKichHoat.SelectDynamic("IDDonVi='" + _ID.ToString() + "'", "");
        }

        private void btnLuuThongTinDonVi_Click(object sender, EventArgs e)
        {
            ThongTinDonVi obj = new ThongTinDonVi();
            obj.MaDonVi = txtMaDonVi.Text;
            obj.TenDonVi = txtTenDonVi.Text;
            obj.NgayMua = dtpNgayMua.DateTime;
            obj.SoLuongBanQuyenMua = Convert.ToInt32(txtSoLuongBanQuyen.Text);
            obj.TinhTrangThanhToan = txtTinhTrangThanhToan.Text;
            obj.GhiChu = txtGhiChu.Text;

            if (_ID == Guid.Empty)
            {
                _ID = Guid.NewGuid();
                obj.ID = _ID;
                obj.Insert();
                grKey.Enabled = true;
            }
            else
            {
                obj.ID = _ID;
                obj.Update();
            }
            MessageBox.Show("Lưu thông tin thành công !. Hãy tiếp tục tạo mã kích hoạt ở giao diện bên dưới.");
           
        }

        private void btnLuuMaKichHoat_Click(object sender, EventArgs e)
        {
            MaKichHoat obj = new MaKichHoat();
            obj.IDDonVi = _ID;
            obj.MaMay = txtMaMay.Text;
            obj.MaKichHoatSanPham = txtMaKichHoat.Text;
            obj.TenNguoiSuDung = txtTenKhachHang.Text;
            obj.NgayTao = dtpNgayTao.DateTime;
            obj.NgayHetHan = dtpDuocSuDungDen.DateTime;
            obj.SoNgaySuDung = Convert.ToInt32(txtSoNgaySuDung.Text);
            obj.ID = Guid.NewGuid();
            obj.Insert();
            MessageBox.Show("Lưu thông tin thành công !.");
            this.LoadGridKeyBanQuyen(_ID);

        }

        private void btnTaoMaKichHoat_Click(object sender, EventArgs e)
        {
            SKGL.Generate objCreateKey = new SKGL.Generate();
            objCreateKey.secretPhase = txtMaMay.Text;
            SKGL.SerialKeyConfiguration keyConfig = new SKGL.SerialKeyConfiguration();

            string key = objCreateKey.doKey(Convert.ToInt32(txtSoNgaySuDung.Text), dtpNgayTao.DateTime, 0);
            txtMaKichHoat.Text = key;
            dtpDuocSuDungDen.DateTime = dtpNgayTao.DateTime.AddDays(Convert.ToInt32(txtSoNgaySuDung.Text));
        }

        private void btnXoaKey_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Bạn có muốn xóa key đã chọn không?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
            {
                MaKichHoat.DeleteMaKichHoat(new Guid(UGKeyBanQuyen.ActiveRow.Cells["ID"].Value.ToString()));
                this.LoadGridKeyBanQuyen(_ID);
            }
        }
    }
}
